import axios from 'axios'
import store from '@/store'
import router from '@/router'

const myAxios = axios.create({
    baseURL: 'http://big-event-vue-api-t.itheima.net'
})
//定义请求拦截器
myAxios.interceptors.request.use(config => {
    if (store.state.token) {
        config.headers.Authorization = store.state.token
    }
    return config
}), error => {
    return Promise.reject(error)
}
//定义响应拦截器
myAxios.interceptors.response.use(response => {
    // 响应状态码为 2xx 时触发成功的回调，形参中的 response 是“成功的结果”
    return response
}, error => {
    // 响应状态码不是 2xx 时触发失败的回调，形参中的 error 是“失败的结果”
    if (error.response.status === 401) {
        store.commit('updateToken', '')
        store.commit('updateUserInfo', {})
        router.push('/login')
        MessageChannel.error('用户身份已过期!')
    }
    return Promise.reject(error)
})

export default myAxios
